<!--
Copyright (c) 2019-2022, Hossein Moein
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
  notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
  notice, this list of conditions and the following disclaimer in the
  documentation and/or other materials provided with the distribution.
* Neither the name of Hossein Moein and/or the DataFrame nor the
  names of its contributors may be used to endorse or promote products
  derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL Hossein Moein BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<!DOCTYPE html>
<html><body>

<H1 style="text-align:center">DataFrame</H1>
<P>
  <font size="+2">DataFrame</font> is a templatized C++ class that provides functionalities similar to Python Pandas or R data.frame.<BR>
DataFrame class is defined as:
<pre style='color:#000000;background:#ffffff;'><span style='color:#800000; font-weight:bold; '>template</span><span style='color:#800080; '>&lt;</span><span style='color:#800000; font-weight:bold; '>typename</span> I<span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>typename</span> H<span style='color:#800080; '>></span>
<span style='color:#800000; font-weight:bold; '>class</span> DataFrame;
</pre>
<!--Created using ToHtml.com on 2020-06-09 14:51:05 UTC -->
  <I><B>I</I></B> specifies the index column type<BR>
  <I><B>H</I></B> specifies a heterogenous vector type to contain DataFrame columns. <I>H</I> can only be:<BR>
  <UL>
    <LI><I>HeteroVector</I>: This is an actual heterogenous vector that would contain data. This will result in a "standard" data frame</LI>
    <LI><I>HeteroPtrView</I>: This is a heterogenous vector view. It will result in a data frame view into a <B>disjoint</B> slice of another data frame.</LI>
    <LI><I>HeteroView</I>: This is a heterogenous vector view. It will result in a data frame view into a <B>continuous</B> slice of another data frame. This view is slightly more efficient than <I>HeteroPtrView</I></LI>
  </UL>
  Some of the methods in DataFrame return another DataFrame or one of the above views depending on how you slice the original DataFrame.<BR>
  There are a few convenient typedef’s that are handy<BR>
  <pre style='color:#000000;background:#ffffff;'><span style='color:#800000; font-weight:bold; '>template</span><span style='color:#800080; '>&lt;</span><span style='color:#800000; font-weight:bold; '>typename</span> I<span style='color:#800080; '>></span>
<span style='color:#800000; font-weight:bold; '>using</span> <B>StdDataFrame</B> <span style='color:#808030; '>=</span> DataFrame<span style='color:#800080; '>&lt;</span>I<span style='color:#808030; '>,</span> HeteroVector<span style='color:#800080; '>></span><span style='color:#800080; '>;</span>

<span style='color:#800000; font-weight:bold; '>template</span><span style='color:#800080; '>&lt;</span><span style='color:#800000; font-weight:bold; '>typename</span> I<span style='color:#800080; '>></span>
<span style='color:#800000; font-weight:bold; '>using</span> <B>DataFrameView</B> <span style='color:#808030; '>=</span> DataFrame<span style='color:#800080; '>&lt;</span>I<span style='color:#808030; '>,</span> HeteroView<span style='color:#800080; '>></span><span style='color:#800080; '>;</span>

<span style='color:#800000; font-weight:bold; '>template</span><span style='color:#800080; '>&lt;</span><span style='color:#800000; font-weight:bold; '>typename</span> I<span style='color:#800080; '>></span>
<span style='color:#800000; font-weight:bold; '>using</span> <B>DataFramePtrView</B> <span style='color:#808030; '>=</span> DataFrame<span style='color:#800080; '>&lt;</span>I<span style='color:#808030; '>,</span> HeteroPtrView<span style='color:#800080; '>></span><span style='color:#800080; '>;</span>
</pre>
<!--Created using ToHtml.com on 2020-06-10 15:24:27 UTC -->

  <BR>
  DataFrame library interface is separated into two categories:
  <OL>
    <LI>Slicing & dicing, joining, and groupby'ing, ... the data</LI>
    <LI>Analytical algorithms being statistical, machine-learning, financial analysis …</LI>
  </OL>
  I employ regular parameterized methods to implement item 1. For item 2., I chose the visitor pattern.<BR>
  Please see below table for a comprehensive list of methods, visitors, and types along with documentation and sample code for each feature
</P>
<HR>

<P>
  <font size="+2">Code Examples</font> are in <I>test/dataframe_tester.cc</I> and <I>test/dataframe_tester_2.cc</I>. You should find at least one example for each feature. Also in the table below, you will find code examples for each feature.
</P>
<HR>

<!-- CSS goes in the document HEAD or added to your external stylesheet -->
<style type="text/css">
table.hovertable {
	font-family: verdana,arial,sans-serif,bold;
	font-size:14px;
	color:#333333;
	border-width: 1px;
	border-color: #999999;
	border-collapse: collapse;
}
table.hovertable th {
	background-color:darkgray;
	border-width: 5px;
	padding: 10px;
	border-style: solid;
	border-color: #a9c6c9;
}
table.hovertable tr {
	background-color:#d4e3e5;
}
table.hovertable td {
	border-width: 1px;
	padding: 10px;
	border-style: solid;
	border-color: #a9c6c9;
}
</style>

  <H2 style="text-align:center">Table of Features (with Code Samples)</H2>
  <table align="center" class="hovertable">

    <tr>
      <th><font color="white">DataFrame Methods</font></th>
      <th><font color="white">DataFrame Types</font></th>
      <th><font color="white">DataFrame Built-in Visitors</font></th>
      <th><font color="white">Random Generators</font></th>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/append_column.html">append_column</a>( 2 )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/concat.html">concat_policy</a>{  }</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/AffinityPropVisitor.html">AffinityPropVisitor</a>{  }</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_bernoulli_dist.html">gen_bernoulli_dist</a>{  }</td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/append_index.html">append_index</a>( 2 )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/drop_missing.html">drop_policy</a>{  }</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/AutoCorrVisitor.html">AutoCorrVisitor</a>{  }</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_binomial_dist.html">gen_binomial_dist</a>( )</td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/bucketize.html">bucketize</a>( )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/fill_missing.html">fill_policy</a>{  }</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/BetaVisitor.html">BetaVisitor</a>{  }</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_cauchy_dist.html">gen_cauchy_dist</a>( )</td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/bucketize.html">bucketize_async</a>( )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/exponential_decay_spec.html">exponential_decay_spec</a>{  }</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/BollingerBand.html">BollingerBand</a>{  }</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_chi_squared_dist.html">gen_chi_squared_dist</a>( )</td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/concat.html">concat</a>( )</td>
      <td></td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/CorrVisitor.html">CorrVisitor</a>{  }</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_exponential_dist.html">gen_exponential_dist</a>( )</td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/create_column.html">create_column</a>( )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/io_format.html">io_format</a>{  }</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/CovVisitor.html">CovVisitor</a>{  }</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_extreme_value_dist.html">gen_extreme_value_dist</a>( )</td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/drop_missing.html">drop_missing</a>( )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/join_by_column.html">join_policy</a>{  }</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/CumMaxVisitor.html">CumMaxVisitor</a>{  }</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_fisher_f_dist.html">gen_fisher_f_dist</a>( )</td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/fill_missing.html">fill_missing</a>( )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/MADVisitor.html">mad_type</a>{  }</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/CumMinVisitor.html">CumMinVisitor</a>{  }</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_gamma_dist.html">gen_gamma_dist</a>( )</td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_datetime_index.html">gen_datetime_index</a>( )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/nan_policy.html">nan_policy</a>{  }</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/CumProdVisitor.html">CumProdVisitor</a>{  }</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_geometric_dist.html">gen_geometric_dist</a>( )</td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_sequence_index.html">gen_sequence_index</a>( )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/QuantileVisitor.html">quantile_policy</a>{  }</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/CumSumVisitor.html">CumSumVisitor</a>{  }</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_lognormal_dist.html">gen_lognormal_dist</a>( )</td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/get_col_unique_values.html">get_col_unique_values</a>( )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/get_data_by_rand.html">random_policy</a>{  }</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/DotProdVisitor.html">DotProdVisitor</a>{  }</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_negative_binomial_dist.html">gen_negative_binomial_dist</a>( )</td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/get_column.html">get_column</a>( 2 )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/ReturnVisitor.html">return_policy</a>{  }</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/DoubleCrossOver.html">DoubleCrossOver</a>{  }</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_normal_dist.html">gen_normal_dist</a>( )</td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/get_data_by_idx.html">get_data_by_idx</a>( 2 )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/self_shift.html">shift_policy</a>{  }</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/ExpandingRollAdopter.html">ExpandingRollAdopter</a>{  }</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_poisson_dist.html">gen_poisson_dist</a>( )</td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/get_data_by_loc.html">get_data_by_loc</a>( 2 )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/sort.html">sort_spec</a>{  }</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/ExponentialRollAdopter.html">ExponentialRollAdopter</a>{  }</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_student_t_dist.html">gen_student_t_dist</a>( )</td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/get_data_by_rand.html">get_data_by_rand</a>( )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/sort_state.html">sort_state</a>{  }</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/GeometricMeanVisitor.html">GeometricMeanVisitor</a>{  }</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_uniform_int_dist.html">gen_uniform_int_dist</a>( )</td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/get_data_by_sel.html">get_data_by_sel</a>( 3 )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/time_frequency.html">time_frequency</a>{  }</td>
      <td>struct GroupbySum{  }</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_uniform_real_dist.html">gen_uniform_real_dist</a>( )</td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/get_index.html">get_index</a>( 2 )</td>
      <td>struct BadRange{  }<BR>An Exception</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/HarmonicMeanVisitor.html">HarmonicMeanVisitor</a>{  }</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_weibull_dist.html">gen_weibull_dist</a>( )</td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/get_memory_usage.html">get_memory_usage</a>( )</td>
      <td>struct ColNotFound{  }<BR>An Exception</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/KMeansVisitor.html">KMeansVisitor</a>{  }</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/gen_log_space_nums.html">gen_log_space_nums</a>( )</td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/get_reindexed.html">get_reindexed</a>( )</td>
      <td>struct DataFrameError{  }<BR>An Exception</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/KthValueVisitor.html">KthValueVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/get_reindexed.html">get_reindexed_view</a>( )</td>
      <td>struct InconsistentData{  }<BR>An Exception</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/MACDVisitor.html">MACDVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/get_row.html">get_row</a>( )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/Index2D.html">Index2D</a>{  }</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/MADVisitor.html">MADVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/get_data_by_idx.html">get_view_by_idx</a>( 2 )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/get_memory_usage.html">MemUsage</a>{  }</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/MaxVisitor.html">MaxVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/get_data_by_loc.html">get_view_by_loc</a>( 2 )</td>
      <td>struct NotFeasible{  }<BR>An Exception</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/MeanVisitor.html">MeanVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/get_data_by_rand.html">get_view_by_rand</a>( )</td>
      <td>struct NotImplemented{  }<BR>An Exception</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/MedianVisitor.html">MedianVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/get_data_by_sel.html">get_view_by_sel</a>( 3 )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/pattern_spec.html">pattern_spec</a>{  }</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/MinVisitor.html">MinVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/groupby.html">groupby</a>( 2 )</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/global_operators.html">df_plus</a> operator</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/ModeVisitor.html">ModeVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/groupby.html">groupby_async</a>( 2 )</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/global_operators.html">df_minus</a> operator</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/NLargestVisitor.html">NLargestVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/has_column.html">has_column</a>( )</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/global_operators.html">df_multiplies</a> operator</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/NSmallestVisitor.html">NSmallestVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/is_equal.html">is_equal</a>( )</td>
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/global_operators.html">df_divides</a> operator</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/ProdVisitor.html">ProdVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/join_by_column.html">join_by_column</a>( )</td>
      <td>enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/RankVisitor.html">rank_policy</a>{  }</td>
      <td>struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/QuantileVisitor.html">QuantileVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Joins two DataFrames by index"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/join_by_column.html">join_by_index</a>( )</td>
      <td title="Specification for Sigmoid function">enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/SigmoidVisitor.html">sigmoid_type</a>{  }</td>
      <td title="Calculates returns">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/ReturnVisitor.html">ReturnVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Loads a single column"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/load_column.html">load_column</a>( 3 )</td>
      <td title="Specification for removing duplicates">enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/remove_duplicates.html">remove_dup_spec</a>{  }</td>
      <td title="Calculates sample z-score">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/SampleZScoreVisitor.html">SampleZScoreVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Loads index and multiple columns at the same time"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/load_data.html">load_data</a>( )</td>
      <td></td>
      <td title="Calculates standard error of the mean">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/SEMVisitor.html">SEMVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Loads index column"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/load_index.html">load_index</a>( 2 )</td>
      <td></td>
      <td title="Visitor adopter for rolling">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/SimpleRollAdopter.html">SimpleRollAdopter</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Makes index and columns sizes consistent"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/make_consistent.html">make_consistent</a>( )</td>
      <td></td>
      <td title="Calculates simple linear regression">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/SLRegressionVisitor.html">SLRegressionVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Modifies DataFrame by index"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/modify_by_idx.html">modify_by_idx</a>( )</td>
      <td></td>
      <td title="Calculates multiple different statistics">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/StatsVisitor.html">StatsVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Visits multiple columns one at a time"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/multi_visit.html">multi_visit</a>( )</td>
      <td></td>
      <td title="Calculates standard deviation">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/StdVisitor.html">StdVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Reads data from stream"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/read.html">read</a>( )</td>
      <td></td>
      <td title="Calculates sum">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/SumVisitor.html">SumVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Reads data from stream -- Async"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/read.html">read_async</a>( )</td>
      <td></td>
      <td title="Calculates tracking error">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/TrackingErrorVisitor.html">TrackingErrorVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Removes column"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/remove_column.html">remove_column</a>( )</td>
      <td></td>
      <td title="Calculates Volume Weighted Average Price and more">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/VWAPVisitor.html">VWAPVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Removes column data by index"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/remove_data_by_idx.html">remove_data_by_idx</a>( )</td>
      <td></td>
      <td title="Calculates Volume Weighted Bid-Ask Spread and more">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/VWBASVisitor.html">VWBASVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Removes column data by location"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/remove_data_by_loc.html">remove_data_by_loc</a>( )</td>
      <td></td>
      <td title="Calculates z-score">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/ZScoreVisitor.html">ZScoreVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Removes column data by selection"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/remove_data_by_sel.html">remove_data_by_sel</a>( 3 )</td>
      <td></td>
      <td title="Categorizes column data">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/CategoryVisitor.html">CategoryVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Removes Spin Lock"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/remove_lock.html">remove_lock</a>( )</td>
      <td></td>
      <td title="Factorizes column data">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/FactorizeVisitor.html">FactorizeVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Renames column"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/rename_column.html">rename_column</a>( )</td>
      <td></td>
      <td title="Clips column data to limits">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/ClipVisitor.html">ClipVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title ="Replaces data in columns"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/replace.html">replace</a>( 2 )</td>
      <td></td>
      <td title="Calculates Sharpe ratio">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/SharpeRatioVisitor.html">SharpeRatioVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Replaces data in columns -- Async"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/replace.html">replace_async</a>( 2 )</td>
      <td></td>
      <td title="Calculates rank">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/RankVisitor.html">RankVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Replaces data in index column"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/replace.html">replace_index</a>( )</td>
      <td></td>
      <td title="Calculates Sigmoid functions">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/SigmoidVisitor.html">SigmoidVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Rotates data left or right"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/rotate.html">rotate</a>( )</td>
      <td></td>
      <td title="Calculates Relative Strength Index">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/RSIVisitor.html">RSIVisitor</a>{  }</td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Bucketizes column data in self"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/bucketize.html">self_bucketize</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Concatenates DataFrame(s)"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/concat.html">self_concat</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Rotates data left or right in self"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/rotate.html">self_rotate</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Shifts data up or dowm in self"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/self_shift.html">self_shift</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Returns the shape of DataFrame"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/shape.html">shape</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Sets the Spin Lock"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/remove_lock.html">set_lock</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Shifts data up or down"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/self_shift.html">shift</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Reclaims unused memory"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/shrink_to_fit.html">shrink_to_fit</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Shufles data in columns"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/shuffle.html">shuffle</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Single action visitor operation"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/single_act_visit.html">single_act_visit</a>( 2 )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Single action visitor operation -- Async"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/single_act_visit.html">single_act_visit_async</a>( 2 )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Sorts DataFrame"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/sort.html">sort</a>( 5 )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Sorts DataFrame -- Async"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/sort.html">sort_async</a>( 5 )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Transposes DataFrame"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/transpose.html">transpose</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Counts values in a column"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/value_counts.html">value_counts</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Visitor operation"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/visit.html">visit</a>( 5 )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Visitor operation -- Async"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/visit.html">visit_async</a>( 5 )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Writes DataFrame to stream"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/write.html">write</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Writes DataFrame to stream -- Async"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/write.html">write_async</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Changes the type of a column"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/retype_column.html">retype_column</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Loads a column aligned with index column"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/load_column.html">load_align_column</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Returns info about columns"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/get_columns_info.html">get_columns_info</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="True, if matches an statistical pattern"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/pattern_spec.html">pattern_match</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Combines columns"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/combine.html">combine</a>( 3 )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Removes duplicated rows"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/remove_duplicates.html">remove_duplicates</a>( 5 )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Returns true/false if empty"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/empty.html">empty</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
      <td title="Returns true/false if shapeless"><a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/empty.html">shapeless</a>( )</td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

  </table>
<HR>
  <BR>

  <H1><font color="blue">Motivation</font></H1>
  <P>
    Although Pandas has a spot-on interface and it is full of useful functionalities, it lacks performance and scalability. For example, it is hard to decipher high-frequency intraday data such as Options data or S&amp;P500 constituents tick-by-tick data using Pandas.<BR>
    Another issue I have encountered often is the research is done using Python, because it has such tools as Pandas, but the execution in production is in C++ for its efficiency, reliability and scalability. Therefore, there is this translation, or sometimes a bridge, between research and executions.<BR>
    Also, in this day and age, C++ needs a heterogeneous data container.<BR>
    Mainly because of these factors, I implemented the C++ DataFrame.<BR>
    <I>I welcome all contributions from people with expertise, interest, and time to do it. I will add more functionalities from time to time, but currently my spare time is limited.</I>
  </P>
<HR>

  <H1><font color="blue">Views</font></H1>
  <P>
    Views were added in the second wave of development. It is a very useful concept with practical use-cases. A view is a slice of a DataFrame that is a reference to the original DataFrame. It appears exactly the same as a DataFrame, but if you modify any data in the view, the corresponding data point(s) in the original DataFrame will also be modified.<BR>
    There are certain things you cannot do in views. For example, you cannot add to delete columns, extend the index column, ...<BR>
    For more understanding, look at this document further and/or the test files.
  </P>
<HR>

  <H1><font color="blue">Visitors</font></H1>
  <P>
    Visitors are the main mechanism to implement analytical (i.e. statistical, financial, machine-learning) algorithms. You can easily follow the visitor's interface to add your custom algorithm by which you will extend the DataFrame package.<BR> 
    There are two visitor interfaces:<BR>
    <OL>
      <LI>Regular visit. This visitor is called by calling the <I>visit()</I> method on a DataFrame instance. In this case DataFrame passes the given index and column(s) data points one-by-one to the visitor functor. This is convenient for algorithms that can operate one data point at a time. Examples are <I>correlation</I> or <I>variance</I> visitors. They are implemented in <I> DataFrameStatsVisitors.h</I> file.</LI>
      <LI>Single-action visit. This visitor is called by calling the <I>single_act_visit()</I> method on a DataFrame instance . In this case begin and end iterators for the given index and column(s) are passed to the visitor functor. So the fuctor has access to all index and column(s) data at once. This is necessary for algorithms that need the whole data together. Examples are  <I>return</I> or <I>median</I> visitors. They are implemented in <I> DataFrameFinancialVisitors.h</I> and <I> DataFrameStatsVisitors.h</I> files respectively.</LI>
    </OL>
    There are some common interfaces in most of the visitors. For example the following interfaces are common between most (but not all) visitors:<BR>
    <B>get_result()</B> It returns the result of the visitor/algorithm.<BR>
    <B>pre()</B> It is called by DataFrame each time before starting to pass the data to the visitor. pre() is the place to initialize the process<BR>
    <B>post()</B> It is called by DataFrame each time it is done with passing data to the visitor.<BR>
    <BR>
    See this document, <I>DataFrameStatsVisitors.h, DataFrameMLVisitors.h, DataFrameFinancialVisitors.h, DataFrameTransformVisitors.h</I>, and <I>test/dataframe_tester.cc</I> for more examples and documentation.
  </P>
<HR>

  <H1><font color="blue">Random Generators</font></H1>
  <P>
    Random generators were added as a series of convenient stand-alone functions to generate random numbers (it covers all C++ standard distributions). You can seamlessly use these routines to generate random DataFrame columns.<BR>
    See this document and file <I>RandGen.h</I> and <I>dataframe_tester.cc.</I>
    For the definition and defaults of <I>RandGenParams</I>, see this document and file <I>DataFrameTypes.h</I>
  </P>
<HR>

  <H1><font color="blue">Code Structure</font></H1>
  <P>
    The DataFrame library is “almost” a header-only library with a few boilerplate source file exceptions, <I>HeteroVector.cc</I> and <I>HeteroView.cc</I> and a few others. Also there is <I>DateTime.cc.</I><BR>
    <BR>
    Starting from the root directory;<BR>
    <font size="+2">include</font> directory contains most of the code. It includes <I>.h</I> and <I>.tcc</I> files. The latter are C++ template code files (they are mostly located in the <I>Internals</I> subdirectory). The main header file is <I>DataFrame.h.</I> It contains the DataFrame class and its interface. There are comprehensive comments for each public interface call in that file. The rest of the files there will show you how the sausage is made.<BR>
    Include directory also contains subdirectories that contain mostly internal DataFrame implementation.<BR>
    One exception, the <I>DateTime.h</I> is located in the Utils subdirectory<BR>
    <BR>
    <font size="+2">src</font> directory contains Linux-only make files and a few subdirectories that contain various source codes.<BR>
    <BR>
    <font size="+2">test</font> directory contains all the test source files, mocked data files, and test output files. The main test source file is <I>dataframe_tester.cc.</I> It contains test cases for all functionalities of DataFrame. It is not in a very organized structure. I plan to make the test cases more organized.
  </P>
<HR>

  <H1><font color="blue">Build Instructions</font></H1>
  <P>
    <font size="+2">Using plain make and make-files</font><BR>
    Go to the root of the repository, where license file is, and execute build_all.sh. This will build the library and test executables for Linux flavors <BR>
    <font size="+2">Using cmake</font><BR>
    Please see README file. Thanks to @justinjk007, you should be able to build this in Linux, Windows, Mac, and more
  </P>
<HR>

  <BR><BR>

</body></html>

<!--
Local Variables:
mode:HTML
tab-width:4
c-basic-offset:4
End:
-->
